package Tree;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

public class leet_199 {
}

class Solution_199 {

    public List<Integer> rightSideView(TreeNode root) {
        return null;
    }

    /**
     * 二叉树的层序遍历
     * @param root  根节点
     * @return
     */
    public List<Integer> rightSideViewSequence(TreeNode root){
        List<Integer> rootList = new ArrayList<>();
        if(root==null){return rootList;}
        // 首先把根节点加入结点中
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);

        while(!queue.isEmpty()){
            // 得到每一层的数量
            int size = queue.size();
            for(int i=0; i<size; i++){
                root = queue.poll();
                if(root.left!=null){
                    queue.add(root.left);
                }
                if(root.right!=null){
                    queue.add(root.right);
                }
            }
            // 最后一个元素
            rootList.add(root.val);
        }
        return rootList;
    }
}